rtl8821ce 在 Ubuntu 中配置蓝牙

您所在的位置:网站首页 8822ce 蓝牙 rtl8821ce 在 Ubuntu 中配置蓝牙

rtl8821ce 在 Ubuntu 中配置蓝牙

2023-12-17 14:14| 来源: 网络整理| 查看: 265

rtl8821ce 在 Ubuntu 中配置蓝牙 问题解决

问题

又填一E480的大坑! rtl8821ce集成蓝牙与wlan功能,Win10系统可以正常工作,Ubuntu蓝牙失效(一开始wifi也没有)。找不到蓝牙适配器。

解决

在forum上找到了大佬的解决方法。

1.下载内核源码,修改drivers/bluetooth/btrtl.c,覆盖掉8821A的相关代码:

line 30:

#define RTL_EPATCH_SIGNATURE "Realtech" #define RTL_ROM_LMP_3499 0x3499 #define RTL_ROM_LMP_8723A 0x1200 #define RTL_ROM_LMP_8723B 0x8723 #define RTL_ROM_LMP_8821A 0xFFFF //blocked for 8821c #define RTL_ROM_LMP_8821C 0x8821 #define RTL_ROM_LMP_8761A 0x8761 #define RTL_ROM_LMP_8822B 0x8822

这里我添加了一个RTL_ROM_LMP_8821C的宏定义,因为8821A和8821C的LMP子版本号都是8821,所以为了能用C尾缀的需要把A尾缀的值改成别的。 然后把后面的代码分别添加上RTL_ROM_LMP_8821C的相关内容:

line 83:

//添加8821C的project_id = 10 static const struct { __u16 lmp_subver; __u8 id; } project_id_to_lmp_subver[] = { { RTL_ROM_LMP_8723A, 0 }, { RTL_ROM_LMP_8723B, 1 }, { RTL_ROM_LMP_8821A, 2 }, { RTL_ROM_LMP_8821C, 10 }, { RTL_ROM_LMP_8761A, 3 }, { RTL_ROM_LMP_8822B, 8 }, };

line 337:

//添加8821C的配置文件路径 switch (lmp_subver) { case RTL_ROM_LMP_8723B: cfg_name = "rtl_bt/rtl8723b_config.bin"; break; case RTL_ROM_LMP_8821A: cfg_name = "rtl_bt/rtl8821a_config.bin"; break; case RTL_ROM_LMP_8821C: cfg_name = "rtl_bt/rtl8821c_config.bin"; break; case RTL_ROM_LMP_8761A: cfg_name = "rtl_bt/rtl8761a_config.bin"; break; case RTL_ROM_LMP_8822B: cfg_name = "rtl_bt/rtl8822b_config.bin"; config_needed = true; break; default: BT_ERR("%s: rtl: no config according to lmp_subver %04x", hdev->name, lmp_subver); break; }

line 457:

//添加8821C的固件路径 switch (lmp_subver) { case RTL_ROM_LMP_8723A: case RTL_ROM_LMP_3499: return btrtl_setup_rtl8723a(hdev); case RTL_ROM_LMP_8723B: return btrtl_setup_rtl8723b(hdev, lmp_subver, "rtl_bt/rtl8723b_fw.bin"); case RTL_ROM_LMP_8821A: return btrtl_setup_rtl8723b(hdev, lmp_subver, "rtl_bt/rtl8821a_fw.bin"); case RTL_ROM_LMP_8821C: return btrtl_setup_rtl8723b(hdev, lmp_subver, "rtl_bt/rtl8821c_fw.bin"); case RTL_ROM_LMP_8761A: return btrtl_setup_rtl8723b(hdev, lmp_subver, "rtl_bt/rtl8761a_fw.bin"); case RTL_ROM_LMP_8822B: return btrtl_setup_rtl8723b(hdev, lmp_subver, "rtl_bt/rtl8822b_fw.bin"); default: BT_INFO("rtl: assuming no firmware upload needed."); return 0; }

2.编译为btrtl.ko,替换掉系统原模块(记得备份一下以免需要还原的时候找不到了~~); 3.把8821C的配置文件和固件放到/lib/firmware/rtl_bt下; 4.重启,enjoy it!

最后是已经配置好的驱动。 bt_8821ce.tar.bz2



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3